package com.wongoing.apiclient.alipay;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Map;

import javax.xml.bind.JAXBException;

import com.wongoing.apiclient.alipay.query.Alipay;

public interface IAlipayManager {
	
	/**
	 * 功能说明：
	 * 修改说明：
	 * @author 吴兆强
	 * @date 2018年6月28日 下午12:55:06
	 * @param WIDout_trade_no  商户订单号
	 * @param WIDtotal_amount 总金额
	 * @param WIDsubject 订单标题
	 * @param WIDbody  订单描述
	 * @param resturnUrl 通不通知
	 * @param ip ip
	 * @return
	 * @throws MalformedURLException
	 * @throws DocumentException
	 * @throws IOException
	 * @throws JAXBException 
	 */
	public String alipayWebScanQrCodePay(String WIDout_trade_no, String WIDtotal_amount, String WIDsubject, String WIDbody,
			  String resturnUrl, String ip) throws IOException, JAXBException;
	
	/**
	 * 功能说明：即时到账退款接口
	 * 修改说明：
	 * @author 吴兆强
	 * @date 2017年12月28日 下午5:44:14
	 * @param WIDbatch_no 退款批次号
	 * @param WIDrefund_date 退款请求时间
	 * @param WIDbatch_num 退款总笔数
	 * @param WIDdetail_data 单笔数据集
	 * @param notify_url 异步通知地址
	 * @return
	 * @throws Exception
	 */
	public Map<String,String> alipayRefund(String WIDbatch_no,String WIDrefund_date,
			String WIDbatch_num,String WIDdetail_data,String notify_url) throws Exception;
	
	/**
	 * 功能说明：支付宝支付查询
	 * 修改说明：
	 * @author 吴兆强
	 * @date 2018年7月3日 上午9:07:22
	 * @param WIDtrade_no 交易号
	 * @param WIDout_trade_no 商户订单号
	 * @return
	 * @throws Exception 
	 */
	public Alipay alipayQueryToBean(String WIDtrade_no, String WIDout_trade_no) throws Exception;
	
	/**
	 * 功能说明：支付宝银联支付
	 * 修改说明：
	 * @author 吴兆强
	 * @date 2018年7月7日 上午9:08:08
	 * @param WIDout_trade_no 商户订单号
	 * @param WIDtotal_amount 支付金额
	 * @param WIDsubject 标题
	 * @param WIDbody 描述
	 * @param WIDdefaultbank 所选银行
	 * @param ip 请求ip
	 * @param WIDShowUrl 商品展示地址，非必填可以空
	 * @param resturnUrl 同步回调地址
	 * @return
	 * @throws Exception 
	 * @throws IOException 
	 */
	public String alipayUnionPay(String WIDout_trade_no, String WIDtotal_amount, String WIDsubject, String WIDbody,String WIDdefaultbank,
			String ip, String  WIDShowUrl, String resturnUrl) throws IOException, Exception;
}
